Guidance method and apparatus

ABSTRACT

A method of guiding a pursuer to a target is provided, and is of particular use when the possible target location is described by non-Gaussian statistics. Importantly, the method takes into account the fact that different potential target tracks in the future have significantly different times to go. That can give rise to emergent behaviour, in which the guidance method covers several possible outcomes at the same time in an optimal way. An example embodiment of the method combines Particle Filter ideas with Swarm Optimization techniques to form a method for generating guidance commands for systems with non-Gaussian statistics. That example method is then applied to a dynamic mission planning example, to guide an airborne pursuer to aground target travelling on a network of roads where the pursuer has no-go areas, to avoid collateral damage.

FIELD OF THE INVENTION

This invention relates to the field of guidance, and in particular to a method and apparatus for guiding a pursuer to a goal, for example a target. More particularly, the invention relates to a method and apparatus for guiding a pursuer to a goal with minimal expected cost in a system in an uncertain state but for which the costs are known. Still more particularly, the invention relates to a method of guiding a pursuer to a target where the target cannot readily be characterised using Gaussian statistics.

BACKGROUND ART

The fundamental problem in munition guidance is determining the flight path that a missile or other guided munition needs to take to in order to reach a given target. More specifically, the problem is determining the controls that should be applied to the munition during its flight in order to reach the target, for example determining the lateral acceleration that is needed to achieve the desired flight path.

Classical approaches to guidance involve selecting a geometric law governing the flight path, for example line-of-sight guidance, pure pursuit or parallel navigation, and then determining and applying to the munition the control that is needed, at any given moment during its flight, to minimise the error between the actual state (e.g. position, velocity) of the munition and the ideal state determined by the guidance law. For the case of parallel navigation, the most commonly used corresponding guidance law is proportional navigation (PN). Parallel navigation is the constant-bearing rule, so that the direction of the line-of-sight from the munition to the target is kept constant relative to an inertial frame of reference, i.e. in the planar case, {dot over (λ)}=0 where λ is the angle between the munition-target line of sight and a reference line in the inertial frame; the PN guidance law is then a_(M) _(c) =k{dot over (λ)}, where a_(M) _(c) is the command for lateral acceleration and k is a constant (gain); thus, the lateral acceleration applied to the munition is proportional to the rate of change with time of angle λ.

Many modern guidance systems rely on an alternative class of techniques, known collectively as optimal guidance. In optimal guidance, rather than determining the control in view of a geometric law, the control is determined with a view to minimising a cost function. The cost function is typically a function of the miss distance, i.e. the distance by which the munition will miss its target, and the control effort, i.e. the amount of effort required to reach the target (e.g. the amount of fuel required). The guidance problem typically also involves constraints, for example relating to the dynamics of the munition. Solution of the optimisation problem, analytically or by computer-implemented numerical methods, provides the optimal control, which minimises the cost function.

In practical guidance situations, a target state is usually not known and has to be determined through measurements. The measurements are used to determine an evolving probability distribution of the future location of the target, to which the pursuer is to be optimally guided. When the location of the target can be described using a Gaussian probability distribution, guidance is relatively straightforward. However, when the target distribution cannot be described using a Gaussian probability distribution, for example when the target location is limited to a number of possible discrete locations (e.g. a number of possible road routes that the target may be taking), the guidance problem becomes more difficult.

The classic way to represent the target probability distribution when it is non-Gaussian is to use a Particle Filter (introduced by N. J. Gordon, D. J. Salmond, and A. F. M. Smith, in their seminal paper Novel approach to nonlinear/non-Gaussian Baysian state estimation, IEE Proc.—F, vol 140, No 2, pp 107-113, 1993). M. S. Arulampalam, S. Maskell, N. Gordon, and T. Clapp (in A tutorial on particle filters for non-linear/non-gaussian Bayesian tracking, IEE Trans. Signal processing, Vol. 50, February 2002) provide an introductory tutorial on Particle Filtering, and A. Doucet, N. de Freitas, and N. Gordon (editors, in Sequential Monte Carlo Methods in Practice. Springer-Verlang, 2001) give a collection of papers describing the theory behind Particle Filtering, together with various improvements to and applications of Particle Filtering. Particle Filtering essentially describes the future target distribution using a weighted sample of target trajectories from the present target distribution. It simplifies the implementation of the Bayesian rule for measurement updates by modifying just the particle weights and then resampling after each measurement. The resulting weighted target trajectory population is used to calculate approximately an expected value of a function of the target state as a random variable. That is done just by applying the function to the target trajectory sample and then forming a weighted sum of the results using the particle filter weights. Although that provides a way to measure and predict target properties, it does not deal with how to guide the pursuer to the target.

One of the outstanding problems in Guidance and Control is to guide a pursuer to a target that has genuinely non-Gaussian statistics, so that the guidance algorithm gives the best average outcome against miss distance, pursuer manoeuvring and pursuer state costs, subject to pursuer state constraints. D. J. Salmond, N. O. Everett, and N J Gordon (“Target tracking and guidance using particles”, in Proceedings of the American Control Conference, pages 4387-4392, Arlington, Va., Jun. 25-27, 2001) pioneered this area by using a simple guidance law, with a fixed shape, and in a following paper (D Salmond and N. Gordon, “Particles and mixtures for tracking and guidance”, in A. Doucet, N. de Freitas, and N. Gordon, editors, Sequential Monte Carlo Methods in Practice, pages 518-532. Springer-Verlang, 2001) classified several types of suboptimal guidance solutions.

It would be advantageous to provide an improved method and apparatus for guidance to a target having non-Gaussian statistics.

DISCLOSURE OF THE INVENTION

A first aspect of the invention provides a method of guiding a pursuer to a target, the method comprising:

-   -   (a) providing a plurality of possible target trajectories,         weighted to represent a probability distribution of the target         trajectories;     -   (b) providing a plurality of candidate guidance controls,         parameterised by a candidate guidance parameter;     -   (c) for each of a plurality of values of the candidate guidance         parameter:         -   a. determining a projected pursuer trajectory resulting from             the candidate guidance control corresponding to the             candidate guidance parameter value;         -   b. using the projected pursuer trajectory so far developed,             determining the next occurrence of a termination condition             for the pursuer trajectory relative to any of the target             trajectories for which a termination condition has not yet             occurred;         -   c. adjusting the projected pursuer trajectory, subsequent to             that termination-condition occurrence, to account for that             target trajectory;         -   d. repeating steps b and c until the termination conditions             corresponding to all of the plurality of possible target             trajectories have been accounted for; and         -   e. recording a cost for the candidate guidance control based             on the projected pursuer trajectory and the miss distances             at the termination-condition occurrence for each target             trajectory;     -   (d) generating a revised plurality of values of the candidate         guidance parameter in view of the recorded costs of the         candidate guidance controls;     -   (e) repeating steps (c) and (d) a plurality of times and         identifying an optimal guidance control based on the recorded         costs;     -   (f) applying the optimal guidance control to the pursuing         vehicle to alter its actual trajectory;     -   (g) obtaining updated possible target trajectories; and     -   (h) repeating steps (b) to (g) a plurality of times.

The termination condition relative to a target trajectory may be the point of nearest approach of the projected pursuer trajectory to the target trajectory.

The candidate guidance parameter may be a costate parameter.

The target trajectories may be described by non-Gaussian statistics. The target trajectories may be possible routes of a target vehicle. The possible routes may comprise a number of possible discrete trajectories, for example road routes. Road routes are an example of possible target trajectories where the next occurrence of a termination condition for the pursuer trajectory relative to each of the target trajectories is significantly different.

The new candidate guidance controls may be generated using an optimisation algorithm. The optimisation algorithm may be a swarm algorithm. The swarm algorithm may be a master-slave swarm algorithm. It may be that, in the master-slave algorithm, if no feasible solutions are found a constraint weight is increased; similarly, a constraint weight may be increased if there is too much slack.

The method may comprise uncurling a projected trajectory by damping a high-frequency oscillation in the projected trajectory.

The method may comprise providing one or more pursuer state constraints such that each cost recorded in step (e) for the candidate guidance control is subject to said pursuer state constraint(s). Pursuer state constraints might take into account for example no go areas for the pursuer.

A second aspect of the invention provides processing apparatus arranged to carry out the steps of a method according to the first aspect of the invention.

The processing apparatus may be comprised in the pursuer, which may, for example, be a vehicle. The vehicle may be an air vehicle, for example an aircraft or a missile or other guided munition. Thus, a third aspect of the invention provides a vehicle comprising apparatus according to the second aspect of the invention. The vehicle may include a short-range sensor to acquire the target and home in on it using conventional homing, for example when the vehicle is less than 1 km, less than 500 m or less than 250 m from the target.

Alternatively, the processing apparatus may be separate from the pursuer, for example in a ground-based radar station.

It will of course be appreciated that features described in relation to one aspect of the present invention may be incorporated into other aspects of the present invention. For example, the method of the invention may incorporate any of the features described with reference to the apparatus of the invention and vice versa.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments of the invention will now be described by way of example only and with reference to the accompanying drawings, of which:

FIG. 1 is a snapshot from a .avi file showing the output of a method according to an example embodiment of the invention, labelled with comments;

FIGS. 2 to 7 are further .avi file snapshots showing the output of the example method for a first example target;

FIGS. 8 to 12 are further .avi file snapshots showing the output 1 of the example method for a second example target; and

FIG. 13 is a flowchart showing an example embodiment of the method of the invention.

DETAILED DESCRIPTION

In an example embodiment of the invention, a method of guiding a pursuing vehicle to a target takes into account the fact that different possible target locations have different times to go, and uses directly raw Particle Filter output. It deals with the case where the measurement outcomes are not affected by the pursuer state (e.g. where the measurement is done by a third-party surveillance radar, rather than by the pursuer itself—in the latter case, the quality of measurement could be a function of the range to the target).

In the discussion below, for a given Particle Filter target trajectory sample, it is shown how to derive differential equations for guidance, and how they are influenced by the Particle Filter output. The guidance law is shown to have costates that jump at the points at which the pursuer passes the Point Of Nearest Approach (PONA) for each target track sample.

A pursuer is at a (at least approximately) known position and on a (at least approximately) known heading. It receives information regarding the possible locations of a target. What guidance control should be applied to the pursuer to alter its trajectory and optimally guide it to its target, given the received information? The approach adopted is to provide a set of candidate guidance controls and to grade each one by assigning it a cost. The grading is then used to generate a new set of candidate guidance controls, according to an optimisation algorithm described in detail below. After a plurality of iterations of the algorithm, the candidate guidance control with the best grading is selected and applied to the pursuer, for example by applying speed and/or directional controls appropriate to the pursuer.

We first work through an example calculation of the expected cost for a candidate guidance control.

The exact present and future locations of the target are not known, but can be represented as a probability distribution. Let y(t:ω) be the random variable representing the state of the target as a function of time. We can regard this as an ensemble of state trajectories Ω with probability measure dPr. Although the optimal guidance control calculated by the method is to be applied in the short term (i.e. once the calculation is complete), the method involves predicting the future trajectory of the pursuer for each candidate guidance control, on the assumption that that candidate guidance control is to be applied in the short term. The consequences of applying a candidate guidance control may be such that the pursuer is predicted to move towards and away from the target during the engagement.

In general, the cost for a target instance is

J(ω)=φ(x,y(t,w))|_(t=tp(ω))+∫₀ ^(tp(ω)) L(u,x,t)dt  (1)

where φ is the terminal cost, representing the cost of missing the target, L is the pursuer integrated cost for the pursuer trajectory under consideration, x is the present state of the pursuer, u is the candidate guidance control under consideration, and t_(p) is the terminal time up to which the cost is measured. This terminal time is the “point of nearest approach” (PONA) for the target instance. Every time the pursuer passes a local PONA, it passes through a point of inflection given by the condition

ψ(x,y ^((i)) ,{dot over (y)} ^((i)))|_(T) _(p) _((ω))=0  (2)

u is the control input used to guide the pursuer with state x given by the constraint equation

{dot over (x)}=ƒ(x,u,t)  (3)

The particular forms of functions φ, L, y, and f may be defined for a given pursuit scenario.

The strategy adopted is to choose a guidance law to minimize the expected cost over all possible target trajectories:

$\begin{matrix} {{E(u)} = {\int_{\Omega}{{J(\omega)}\ {\Pr}}}} & (4) \end{matrix}$

subject to the above constraints (note the dependence on the guidance command u). The cost is thus weighted by the probability dPr of target tracks Ω. In this example, there is no interaction between tracks.

Particle Filters give a convenient way to represent E(u) as a weighted sum of contributions. If we assume J is a measurable function using measure dPr then a Particle Filter selects a sequence of weights and tracks {(w_(i),ω_(i))∈R⁹⁺×Ω|i∈N} such that

$\begin{matrix} {{E(u)} = {\lim\limits_{n->\infty}\frac{\sum\limits_{i = 1}^{n}\; {w_{i}{J\left( \omega_{i} \right)}}}{n}}} & (5) \end{matrix}$

If J(.) is a function that takes on the constant value 1 then from Eq. (5) and the definition Eq. (4) we get

$\begin{matrix} {{\lim\limits_{n\rightarrow\infty}\frac{\sum\limits_{i = 1}^{n}{w_{i}{J\left( \omega_{i} \right)}}}{n}} = 1} & (6) \end{matrix}$

since dPr is a probability measure.

In practice the expected overall cost E(u) is approximated by summing over a finite number N of target tracks to give the approximation:

$\begin{matrix} {{E(u)} = {\sum\limits_{i = 1}^{n}{w_{i}{J\left( \omega_{i} \right)}}}} & (7) \end{matrix}$

where we normalize the weights to satisfy

$\begin{matrix} {{\sum\limits^{N}\; w_{i}} = 1} & (8) \end{matrix}$

to ensure the result behaves like a probability distribution. That approach gives, as an approximation Eq. (4), using Eq. (1):

$\begin{matrix} {{{E(u)} = {{\sum\limits_{i = 1}^{n}{w_{i}{\varphi \left( {x,y^{(i)}} \right)}}} + {\int_{t_{0}}^{t_{f}}{{n(t)}{L\left( {u,x,t} \right)}\ {t}}}}}{Where}} & (9) \\ {{t_{i} = {t_{p}\left( \omega_{i} \right)}};{y^{(i)} = {y\left( \omega_{i} \right)}};{t_{f} = {\max \left( {t_{i},\ldots \mspace{14mu},t_{N}} \right)}}} & (10) \\ {{h\left( {t;i} \right)} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} t} \leq t_{i}} \\ 0 & {othewise} \end{matrix} \right.} & (11) \\ {{n(t)} = {\sum\limits_{1}^{N}{w_{i}{h\left( {t;i} \right)}}}} & (12) \end{matrix}$

Thus the expected cost for each candidate guidance control u includes step functions h which cause the pursuer cost for the trajectory (i.e. the integrand in Eq. (9)) to step each time the PONA is passed for each of the N target tracks under consideration; i.e., once the PONA is passed, at time t_(i), for a possible target trajectory in the integration in Eq. (9), that target trajectory no longer contributes a cost to the remainder of the integration (i.e. the integration from t_(i) to t_(h) with t_(f) being the PONA of the final target trajectory to be passed).

To solve (9), we use the well-known approach of adjoining the Lagrangian multipliers, to give a new cost function J_(A):

$\begin{matrix} {J_{A} = {{\sum\limits_{i = 1}^{N}{w_{i}{\Phi \left( {x,y^{(i)}} \right)}}} + {\int_{t_{0}}^{\infty}{\left\{ {{H\left( {u,x,t} \right)} - {{n(t)}{\lambda^{T}(t)}\overset{.}{x}}} \right\} \ {t}}}}} & (13) \\ {H = {{n(t)}\left\{ {{L\left( {u,x,t} \right)} + {\lambda^{T}f}} \right\}}} & (14) \\ {\Phi^{(i)} = {{\Phi \left( {x,y^{(i)}} \right)} = {{\varphi \left( {x,y^{(i)}} \right)} + {v_{i}{\psi \left( {x,y^{(i)},{\overset{.}{y}}^{(i)}} \right)}}}}} & (15) \end{matrix}$

H is the weighted Hamiltonian, and the function λ^(T) is the state-sensitivity costate and the function v_(i) is the PONA sensitivity costate. Integration by parts gives:

$\begin{matrix} {J_{A} = {{\sum\limits_{i = 1}^{N}{w_{i}{\Phi \left( {x,y^{(i)}} \right)}}} + {{n\left( t_{0} \right)}{\lambda^{T}\left( t_{0} \right)}{x\left( t_{0} \right)}} - {{n\left( t_{\infty} \right)}{\lambda^{T}\left( t_{\infty} \right)}{x\left( t_{\infty} \right)}} + {\int_{t_{0}}^{\infty}{\left\{ {{H\left( {u,x,t} \right)} + {\frac{\left( {{n(t)}\lambda^{T}} \right)}{t}\ x}} \right\} {t}}}}} & (16) \end{matrix}$

Now consider the variation of J_(A) due to variation of u with fixed time t₀ and no variation of the initial condition. Noting that λ(∞)=0 because there is no influence beyond time t_(f), we get

$\begin{matrix} {{\delta \; J_{A}} = {{\sum\limits_{i = 1}^{N}{w_{i}\left\{ {{\frac{\partial\Phi^{(i)}}{\partial x}\left\lbrack {{\delta \; x} + {\overset{.}{x}\; \delta \; t_{i}}} \right\rbrack} + {\frac{\partial\Phi^{(i)}}{\partial t}\delta \; t_{i}}} \right\}}} + {{Q\left( t_{i} \right)}\delta \; t_{i}} + {\int_{t_{0}}^{t_{f}}{\left\{ {{\left\lbrack {\frac{\partial H}{\partial x} + {n\; {\overset{.}{\lambda}}^{T}} + {\overset{.}{n}\; \lambda^{T}}} \right\rbrack \delta \; x} + {\frac{\partial H}{\partial u}\delta \; u}} \right\} \ {t}}}}} & (17) \\ {\mspace{79mu} {where}} & \; \\ {{Q\left( t_{i} \right)} = {{{n\left( {t_{i} -} \right)}{L\left( {{u\left( {t_{i} -} \right)},{x\left( {t_{i} -} \right)},{t_{i} -}} \right)}} - {{n\left( {t_{i} +} \right)}{L\left( {{u\left( {t_{i} +} \right)},{{{x\left( {t_{i} +} \right)}t_{i}} +}} \right)}}}} & (18) \end{matrix}$

is the jump in the original integrand at t_(i) when {dot over (x)}=ƒ(u,x,t). Reorganizing Eq. (17) gives

${\delta \; J_{A}} = \left. {\sum\limits_{i = 1}^{N}{w_{i}\left\{ {\frac{\Phi^{(i)}}{t}\; \delta \; t_{i}} \right\}}} \middle| {}_{t_{i}}{{{+ {Q\left( t_{i} \right)}}\delta \; t_{i}} + {\int_{t_{0}}^{tf}{\left\{ {{\left\lbrack {{\overset{N}{\sum\limits_{i = 1}}{{w_{i}\left( {\frac{\partial\Phi^{(i)}}{\partial x} - \left( {\lambda^{T} + {0.5\delta \; \lambda^{(i)}}} \right)} \right)}\Delta \; \left( t_{i} \right)}} + \left( {\frac{\partial H}{\partial x} + {n\; {\overset{.}{\lambda}}^{T}}} \right)} \right\rbrack \ \delta \; x} + {\frac{\partial H}{\partial u}\delta \; u}} \right\} {t}}}} \right.$

where Δ(s) is the Dirac delta function with the property ∫g(t)Δ(s)dt=g(s) and

$\begin{matrix} {\frac{\Phi^{(i)}}{t} = {{\frac{\partial\Phi^{(i)}}{\partial x}\overset{.}{x}} + \frac{\partial\Phi^{(i)}}{\partial t}}} & (19) \end{matrix}$

By suitable choice of the costate functions λ and v_(i), we can set

$\begin{matrix} {\mspace{79mu} {\left. {w_{i}\frac{\Phi^{(i)}}{t}} \right| = {- {Q(t)}}}} & (20) \\ {{{{\overset{.}{\lambda}}^{T} = {{\sum\limits_{i = 1}^{N}{\frac{w_{i}}{n(t)}\left\{ {{- \frac{\partial\Phi^{(i)}}{\partial x}} + \left( {\lambda^{T} + {0.5{\delta\lambda}^{(i)}}} \right)} \right\} {\Delta \left( t_{i\;} \right)}}} - \frac{\partial L}{\partial x} - {\lambda^{T}\frac{\partial f}{\partial x}}}};}\mspace{20mu} {{\lambda \left( {t_{f} +} \right)} = 0}\mspace{20mu} {{which}\mspace{14mu} {gives}}} & (21) \\ {\mspace{79mu} {{\delta \; J_{A}} = {{\int_{t_{0}}^{tf}{\frac{\partial H}{\partial u}\ \delta \; u{t}}} = 0}}} & (22) \end{matrix}$

That is near zero for all possible small δu giving a point of inflection when

$\begin{matrix} {\frac{\partial H}{\partial u} = 0} & (23) \end{matrix}$

Expanding Eq. (23) slightly gives

$\begin{matrix} {{\frac{\partial L}{\partial u} + {\lambda^{T}\frac{\partial f}{\partial u}}} = 0} & (24) \end{matrix}$

which gives the optimal control law once the influence costate functions λ have been evaluated using the Eq. (21).

Eq. (24) is close to the classic optimal solution of continuous systems, but there is an added effect due to the spread of the influence of the unknown position of the target PONA: the solution has a small jump in the co-state A at each target particle PONA time, of amount δλ^((i)). Equation (21) gives

$\begin{matrix} {{\left( {{n\left( {t_{i} -} \right)} - {0.5w_{i}}} \right)\delta \; \lambda^{(i)}} = \left. {w_{i}\left\{ {{- \frac{\partial\Phi^{(i)}}{\partial x}} + \lambda^{T} + {0.5\delta \; \lambda^{(i)}}} \right\}} \right|_{t = {({t_{i} -})}}} & (25) \end{matrix}$

(The factor of 0.5 is due to integrating a delta function multiplied by a step at the delta. For instance let U(t) be the unit step at t=0 then the delta function is

${\Delta \; (t)} = \frac{{U(t)}}{t}$

and we have

${{0.5\Delta \; (t)} = {{0.5\frac{{U(t)}}{t}} = {{0.5\frac{{U^{2}(t)}}{t}} = {{{U(t)}\frac{{U(t)}}{t}} = {{U(t)}{\Delta (t)}}}}}};$

also, the equation must be multiplied by n(t) before equating sides at t_(i).)

Giving:

$\begin{matrix} {{\delta \; \lambda^{(i)}} = \left. {\frac{w_{i}}{\left( {{n\left( {t_{i} -} \right)} - w_{i}} \right.}\left\{ {{- \frac{\partial\Phi^{(i)}}{\partial x}} + \lambda^{T} + {\delta\lambda}^{(i)}} \right\}} \right|_{t = {({t_{i} -})}}} & (26) \end{matrix}$

while integrating the solution for λ (note that the value of the terms are also dependent on λ and so must be evaluated before the jump).

Thus an optimal guidance solution u can be calculated by numerical integration of Eq. 24, taking into account the jumps δλ^((i)) in the costate function λ that occur at each target trajectory PONA.

We now look at a specific application of the example method, for the illustrative case of a constant-speed pursuer in the xy-plane. This is useful for dynamic mission planning of an airborne pursuer against mobile ground targets. It is a simple test case for the guidance algorithm, and illustrates how to apply the general guidance equations. The derived guidance equations can be used for dynamic mission planning, where we assume the pursuer travels at constant cruise speed prior to engaging the target. Of course the dynamics can be extended to deal with a more representative dynamic behaviour, for example if there is a need for excessive latex, with resulting induced drag. However this simple case can be implemented to run at or near real time on a Personal Computer and illustrates many features used in implementing such a guidance law.

Once one knows how to solve for the costate jumps at each PONA, guidance solutions can be integrated based on an initial state and costate (these solutions are called forward sweeps). The guidance solutions thus generated are candidate solutions parameterized by the initial costate, which leaves the problem of finding the optimal initial costate (giving the optimal guidance control).

The state vector for the pursuer is x=(x_(m),y_(m),γ_(m)) with equations of motion

{dot over (x)} _(m) =V _(m) cos γ_(m)  (27)

{dot over (y)} _(m) =V _(m) sin γ_(m)  (28)

{dot over (γ)}_(m) =u  (29)

(x_(m),y_(m)) is the location, v_(m) is the constant speed, and γ_(m) is the direction of flight of the pursuer.

The main aim is for the pursuer to fly over a target on the ground while avoiding various obstacles or dangerous zones in the x-y plane. This can be used to give a range of scenarios with increasing difficulty.

This example is sufficiently difficult to not have a tractable closed-form solution, even in the simple case of flying over a fixed target in open ground, and has the potential to have forward sweeps that have many oscillatory solutions that are for from optimal for the case in hand. For a single target ω_(i)∈Ω the cost function is taken to be of the form

$\begin{matrix} {{J\left( \omega_{i} \right)} = {{0.5\; {g\left( {m^{2}\left( \omega_{i} \right)} \right)}} + {\int_{t_{0}}^{t_{f}}{B\left( {x,t} \right)}} + {0.5\; u^{2}\ {t}}}} & (30) \end{matrix}$

The cost function has been normalized by dividing through with a constant to give unit cost gain due to applying the control u. m(ω_(i)) is the minimum distance to the target before the end of flight or the projected miss distance. However, this cost should be saturated to be more realistic and give better results, so we use the more general cost function 0.5g(m²(ω_(i))) of miss distance, where g saturates. B represents the strength of the danger zones (or preferred paths if negative). Let z_(M)=(x_(m),y_(m)) be the position of the pursuer and z_(T) ^((i)) be the position of the target particle i. Then the “miss” part of the cost function is given as the weighted distance squared at PONA

φ^((i))=φ(x,y ^((i)))=0.5g((z _(M) −z _(T) ^((i)))^(T)(z _(M) −z _(T) ^((i)))|_(t) _(i) )  (31)

and the PONA condition is given by

ω^((i))=ψ(x,y ^((i)) ,{dot over (y)} ^((i)))=(z _(M) −z _(T) ^((i)))^(T)(ż _(M) −ż _(T) ^((i)))|_(t) _(i) =0  (32)

for each particle. Now this has the following property

$\begin{matrix} {\begin{matrix} {\frac{\varphi^{(i)}}{t} = {{\frac{\partial g}{\partial m^{2}}\left( {z_{M} - z_{T}^{(i)}} \right){\overset{.}{z}}_{M}} - {\frac{\partial g}{\partial m^{2}}\left( {z_{M} - z_{T}^{(i)}} \right)\overset{.}{z}}}} \\ {= {\frac{\partial g}{\partial m^{2}}\left( {z_{M} - z_{T}^{(i)}} \right)^{T}\left( {{\overset{.}{z}}_{M} - {\overset{.}{z}}_{T}} \right)(34)}} \end{matrix}{so}} & (33) \\ {{\frac{\varphi^{(i)}}{t}_{t_{i}}} = 0} & (35) \end{matrix}$

as is expected at PONA. Now

$\begin{matrix} {{\frac{\psi^{(i)}}{t} = {V^{(i)} + {m^{(i)}u} - {\left( {z_{M} - z_{T}^{(i)}} \right){\overset{¨}{z}}_{T}}}}{where}} & (36) \\ {m^{(i)} = {\left( {z_{M} - z_{T}^{(i)}} \right)^{T}\left( {{{- \sin}\; \gamma_{m}},{{+ \cos}\; \gamma_{m}}} \right)V_{m}}} & (37) \\ {V^{(i)} = {\left( {{\overset{.}{z}}_{M} - {\overset{.}{z}}_{T}^{(i)}} \right)^{T}\left( {{\overset{.}{z}}_{M} - {\overset{.}{z}}_{T}} \right)}} & (38) \end{matrix}$

Using the definition Eq. (15) together with Eqs. (31, 32) we get

$\begin{matrix} {{\frac{\partial\Phi^{(i)}}{\partial z_{M}} = \left( {{\frac{\partial g}{\partial m^{2}}\left( {z_{M} - z_{T}^{(i)}} \right)} + {v^{(i)}\left( {{\overset{.}{z}}_{M} - {\overset{.}{z}}_{T}^{(i)}} \right)}} \right)^{T}}}_{t_{i}} & (39) \\ {{{\frac{\partial\Phi^{(i)}}{\partial\gamma_{m}} = {{v^{(i)}\left( {z_{M} - z_{T}^{(i)}} \right)}^{T}\left( {{{- \sin}\; \gamma_{m}},{\cos \; \gamma_{m}}} \right)V_{m}}}} = {v^{(i)}m^{(i)}}} & (40) \end{matrix}$

Using these identities, the incremental update as a function of v_(i) can now be calculated from Eq. (26):

$\begin{matrix} {\left\lbrack {{\delta \; \lambda_{x}^{(i)}},{\delta \; \lambda_{y}^{(i)}}} \right\rbrack = {\frac{w_{i}}{n\left( {+ t_{i}} \right)}\left\{ {{{- \frac{\partial g}{\partial m^{2}}}\left( {z_{M} - z_{T}^{(i)}} \right)} - {v^{(i)}\left( {{\overset{.}{z}}_{M} - {\overset{.}{z}}_{T}^{(i)}} \right)} + \left\lbrack {\lambda_{x},\lambda_{y}} \right\rbrack} \right\}}} & (41) \\ {\mspace{79mu} {{\delta \; \lambda_{\gamma}^{(i)}} = {\frac{\omega_{i}}{n\left( {+ t_{i}} \right)}\left\{ {{{- v^{(i)}}m^{(i)}} + \lambda_{\gamma}^{(i)}} \right\}}}} & (42) \end{matrix}$

Substituting equation of motion Eq. (27) to Eq. (29) into Eq. (24) and Eq. (30) gives the classic control law in terms of the co-state:

u=−λ _(γ)  (43)

Hence the candidate guidance solutions are parameterised by the co-state function, as indicated above. Furthermore, as the pursuer passes the PONA of each target trajectory, the steps in the costate function correspond to altering the guidance control; hence the projected trajectory for the initial guidance solution is altered once each PONA is passed, to take into account the possible target trajectory that has been passed.

The next step is to calculate v^((i)) in terms of costates λ=(λ_(x),λ_(y),λ_(γ)) and pursuer states so that the costate dynamics given by Eq. (21) can be integrated up (using a forward sweep). This process of integrating up the costate trajectory corresponds, by virtue of Eq. (43) to determining the projected trajectory for the candidate guidance control.

Superficially, from Eq. (20) and the orthogonality condition Eq. (35), we get

$\begin{matrix} {v^{(i)} = {- \frac{Q\left( t_{i} \right)}{w_{i}\frac{\psi^{(i)}}{t}}}} & (44) \end{matrix}$

However, Q(t_(i)) depends on the jump δ_((i))u=u(t_(i)−)−u(t_(i)+) which in turn depends on v^((i)). In fact using the control law Eq. (43), the definition of L given in Eq. (30) and the definition Eq. (18), and casting everything in terms of δλ we have:

Q(t _(i))=+w _(i) {B+0.5λ_(γ) ² }−n(t _(i)+){0.5δλ_(γ) ^((i))+λ_(γ)}δλ_(γ) ^((i))  (45)

Eqn. (45) is nearly linear, assuming the jumps at t_(i) are comparatively small. Going back to Eq. (44) and bringing the denominator back up over to the left we get on substituting Eq. (45)

$\begin{matrix} {{v^{(i)}w_{i}\frac{\psi^{(i)}}{t}} = {{{- w_{i}}\left\{ {B + {0.5\; \lambda_{\gamma}^{2}}} \right\}} + {{n\left( {t_{i} +} \right)}\left\{ {{0.5\; \delta \; \lambda_{\gamma}^{(i)}} + \lambda_{\gamma}} \right\} \delta \; \lambda_{\gamma}^{(i)}}}} & (46) \end{matrix}$

Now substitute Eq. (42) to give

$\begin{matrix} {{v^{(i)}w_{i}\left\{ {\frac{\psi^{(i)}}{t} + {m\; \lambda_{\gamma}}} \right\}} = {{w_{i}\left\{ {{- B} + {0.5\; \lambda_{\gamma}^{2}}} \right\}} + {0.5\; {{n\left( {t_{i} +} \right)}\left\lbrack {\delta \; \lambda_{\gamma}^{(i)}} \right\rbrack}^{2}}}} & (47) \end{matrix}$

Substituting from Eq. (36) and rearranging we get

$\begin{matrix} {{v^{(i)} = {D^{- 1}\left( {{- B} + {0.5\; \lambda_{\gamma}^{2}} + {0.5{\frac{n\left( {t_{(i)} +} \right)}{w_{i}}\left\lbrack {\delta \; \lambda_{\gamma}^{i}} \right\rbrack}^{2}}} \right)}}} & (48) \\ \begin{matrix} {D = {V^{(i)} + {m^{(i)}u} - {\left( {z_{M} - z_{T}^{(i)}} \right){\overset{¨}{z}}_{T}} + {m^{(i)}\lambda_{\gamma}}}} \\ {= {V^{(i)} - {\left( {z_{M} - z_{T}^{(i)}} \right){\overset{¨}{z}}_{T}}}} \end{matrix} & (49) \end{matrix}$

The second order term [δλ_(γ) ^((i))]² still a function of v^((i)) which could be accounted for by substituting in Eq. (42); however, the implementation recognizes that this is a small second order term so an approximate value is used by first using Eq. (48) with δλ_(γ) ^((i))=0, and then using this first approximation for v^((i)) in Eq. (42), to give a better approximation for δλ_(γ) ^((i)), which is then used in Eq. (48) to give the final approximation to v^((i)). This is then used to give δλ from Eqs. (41) and (42).

Following this procedure and using a guessed initial value for the costate, the algorithm sweeps forward integrating Eq. (21) until a PONA is detected for a particle in the particle filter (i.e. the closest target trajectory). At that stage, v^((i)) is computed and the jumps in the costate δλ are calculated in the way given in this section: This process is continued until all particles in the particle filter are accounted for (i.e. the PONAs of all targets have been passed).

The following gives a general method to use for computing the δλ^((i)) at a PONA. In the general case, the condition

ψ(x,y ^((i)) ,{dot over (y)} ^((i)))|_(t) _(p) _((ω))=0

is the point of nearest approach in the sense that the cost function φ achieves a local minimum (maximum) so its rate of change is zero as a function of time, thus

${\frac{\varphi^{(i)}}{t}}_{t_{i}} = 0$

at PONA.

Equations (20) and (15) therefore give us that

$v^{(i)} = {- \frac{Q\left( t_{i} \right)}{w_{i}\frac{\psi^{(i)}}{t}}}$

The expression on the right in the above is a known function of guidance state x and time on the denominator but the numerator is a function of the control u and its jump as well as the state x and time at PONA. The time and state are continuous at a PONA but u is not. From equation (24) by substitution of the known values of L and f from equations (1) and (3) we get u as a function of λ as well as the known values of state x and time at PONA. By substituting we get v^((i)) as a function of the unknown δλ^((i)) then by substitution we get from equation (15)

${\frac{\partial\Phi^{(i)}}{\partial x}}_{t = {t_{i} -}}$

as a function of δλ^((i)). Substituting this into equation (26) gives a derivable relation

δλ^((i)) =F _(i)(δλ^((i)))  (A1)

In practice the cost functions will be chosen so that F_(i)( ) is a function that can be derived as an algebraic expression of state and time. However this does not preclude evaluation of it numerically. The solution to this equation (A1) will then give the jump in the costates. This can be solved by a general numerical method such as the Newton-Raphson method (published for example by Cambridge University Press 1988 as. “Numerical Recipes in C”. Section 9.3 by William H. Press et al). Alternatively the equation can often be approximated by a linear equation to give an initial solution δλ^((i)) _(n), and then applying δλ^((i)) _(n+1)=F_(i)(δλ^((i)) _(n)) to get a better solution δλ^((i)) _(n+1). This will converge to a solution if F_(i)( ) is a contraction near the solution. In practice this is the case and a reasonable solution can be obtained with a single iteration. The practitioner will of course include code to check for this by looking at the change in the solution with each substitution. If convergence is not apparent then the more expensive Newton-Raphson method can always be used.

The size of the jump decreases with the number of candidate target tracks which can be increased if the simple method does not converge quickly by increasing the Particle Filter sample size. In this sense the jumps are an artefact of the Particle Filter approximation.

The method described so far provides a method of determining for a given candidate guidance control a projected trajectory that takes into account the PONA of each target trajectory. It also allows a cost to be recorded for each candidate guidance control (for example by using Eq. 9), the cost being based on the projected trajectory and the miss distances at the PONA of each target trajectory. The next stage is to determine the optimal guidance control from the space of possible guidance controls, in view of the calculated costs.

The optimization problem has many local minima, and so hill climbing to a solution is not robust. However, an area of search can be defined to look for a solution, and a randomized search algorithm that has a good search coverage and converges to a global minimum in the search area with high probability has been identified. A swarming optimizer that searches several locations at once, described by J Kennedy and R Eberhart (“Particle swarm optimization”, in Proceedings of the IEEE International Conference on Neural Networks (Perth, Australia), volume IV, pages 1941-1948, Piscataway, Piscataway, N.J., 1995: IEEE Service Centre) is used together with an extension based on the “Master-Slave” algorithm described by Bo Yang, Yunping Chen, Zunlian Zhao, and Qiye Han (“A master-slave particle swarm optimization algorithm for solving constrained optimization problems”, in Proceedings of the 6th World Congress on Intelligent Control and Automation, Dalian, China, June 2006) that adaptively finds constraint cost weights for an optimization solution subject to pursuer state constraints. This is used to take into account no-go areas for the pursuer in dynamic mission planning, as described further below.

In swarm optimisation, candidate solutions are represented by swarm particles, which are particular points in the solution space of the problem of interest (i.e. points in an N-dimensional space, with co-ordinates given by N parameters that together characterise the solution). Each particle has a velocity vector, which indicates how its position in the solution space will change in the next iteration. Thus the candidate solution particles “fly” through the solution space from iteration to iteration. The direction of flight is determined by two factors: the best previous location of the particle, and the best previous location amongst all of the particles; it is the latter factor that can result in “swarming” behaviour, as the particles head towards the optimal solution (in terms of the calculated cost). The effectiveness of the algorithm can be improved by periodically substituting new solutions in place of poorly performing solutions.

The original optimization swarm algorithm developed by Kennedy and Eberhart has been modified to give the standard algorithm as follows, where we have a cost function f(x) of a parameter vector x that we wish to minimize.

Thus, swarm optimization starts by randomly selecting candidate swarm particle parameters, x^([j]) for particles j=1 . . . N_(s). Typically N_(s)=40. Each particle keeps a record of its personal best score parameter p^([j]) so far and current update velocity v^([j]). Initially the update velocities are set to zero. Let g be the current global best score parameter. A new generation of swarm particles is produced using the update rule:

v ^([j])→Limit(w ^([j]) ·v ^([j]) +K ₁{rand₁ ^([j])(p ^([j]) −x ^(j))+rand₂ ^(j)(g−x ^([j]))})  (51)

x ^([j]) →v ^([j]) +x ^([j])  (52)

followed by an update of the personal best parameter p^([j]) and global best parameter g. rand₁ ^([j]) and rand₂ ^([j]) are vectors of random numbers with components uniformly distributed in the interval [0,1]. These random vectors are multiplied component wise with the vectors in the expression. K₁ is a tuning constant normally set to 2 so that the update places the next guess around the area of personal best and global best when the previous velocity is small. w^([j]) is referred to as an inertia term and is included to combat the tendency for the swarm to prematurely collapse to a single point. In a swarm one needs to let some members move with small inertia to speed up convergence while other swarm members retain large inertias to encourage them to explore regions away from the current best score case and increase the chance of finding improved solutions. To do this w^([j]) is randomly selected for each particle at each update from the uniform distribution in the interval [0.5,1.5]. The function Limit( )limits the velocity to ensure that the search does not charge-up large update changes that cause the affected particles to miss too many cases of improved score. In fact, this limit controls the spread of searching about the global minimum for the given distribution of distribution w^([j]).

This standard optimizing swarm does not provide any ability to include directly a constraint and the constraint is often honoured by applying a high cost for constraint violation. Instead of this, the algorithm used in this example embodiment uses the Master Slave algorithm now described.

The constraints are represented by functions of parameter vector c_(k)(x) with k=1 . . . N_(c) and the feasible set is given by

F={x|c _(k)(x)≦0∀k=1 . . . N _(c)}

To incorporate constraints into a cost function construct an auxiliary constraint function

$\begin{matrix} {{d_{k}(x)} = \left\{ \begin{matrix} {{0\mspace{14mu} {if}\mspace{14mu} {c_{k}(x)}} \leq \leq 0} \\ {{c_{k}(x)}\mspace{14mu} {otherwise}} \end{matrix} \right.} & (54) \end{matrix}$

and an augmented cost penalty

$\begin{matrix} {{\Theta (x)} = {{f(x)} + {\sum\limits_{k}{\mu_{k}{d_{k}(x)}}}}} & (55) \end{matrix}$

where μ_(k)>0 are to-be-determined positive constraint penalty weights. Note that for a feasible point Θ(x)=ƒ(x) and μ_(k) and μ_(k) can be in principle chosen to force any global minimum of Θ(x) to be in the feasible set. The Master Slave algorithm idea used by Yang et al. does better than that, by encouraging the swarm to look at constraint boundaries for candidate solutions to the constraint optimization problem. The Master Slave algorithm is used to find a cost minimum of fix) subject to the constraint x∈F.

The master slave algorithm splits the swarm equally into a master swarm M and a slave swarm S. The candidate solution particles in the master swarm explore the feasible regions of the solution space; the candidate solution particles in the slave swarm explore the infeasible regions of the solution space. Solution particles from each swarm can change type, master becoming slave, and vice versa, if their flight path takes them across a constraint boundary: that allows the swarm as a whole to spread into regions that would otherwise (i.e. if there were only the master swarm) be closed to it by “no-go” constraint areas.

Thus the master swarm has an ordering relation <_(M) that favours feasible solutions and small cost (for a master parameter pair (x, y) x<_(M) y means x scores better than y.) The relation is defined as follows:

x< _(M) y=(x∈F

y∈F

ƒ(x)<ƒ(y))

(x∈F

y∉F)

(x∉F

y∉F

Θ(x)<Θ(y))  (56)

where

is the predicate and operator,

is the predicate or operator, and

used below is the predicate not operator. Similarly, the slave swarms have an ordering relation <_(S) that favours infeasible solutions and small augmented cost. (For a slave parameter pair (x,y)x<_(S) y means x scores better than y.) The relation is defined as follows:

x< _(S) y=(x∈F

y∈F

ƒ(x)<ƒ(y))

(x∉F

y∈F)

(x∉F

y∉F

Θ(x)<Θ(y))

If a parameter x has components x_(i), then put

${{{dist}(x)} = {\sum\limits_{i}{x_{i}}}};$

this will be used to measure the distance between two parameters x, y as dist(x−y).

Half of the master swarm consists of members called ML that are candidates to act as leaders for the master swarm and similarly half of the slave swarm members are called SL and are candidates to act as slave leaders. The idea of adopting a leader other than the global best is required because the master swam and slave swarm have different aims; also, by having a large number of leaders several local candidate competing solutions can better explored avoiding premature adoption of a local best that is not optimal. The basic idea of the algorithm is that each swarm member i∈M∪S maintains both a personal best parameter p^([j]), a current search parameter x^([j]) and a velocity v^([j]. For i, j∈M , define the relations i<) _(M) j=p^([i])<_(M) p^([j])i≦_(M) j=

(j<_(S) i). For i, j∈S define the relations i<_(S) j=p^([i])i≦_(S) j=

(j<_(S) i).

At initialization, μ_(k)=1, k=1 . . . N_(c) and v^([j])=0, j∈M∪S then the example algorithm iterates as follows:

1. Update the values of Θ(p^([j])), j∈M∪S

2. For the slaves, sort using the relation <_(M) and use the top scoring half as the current SL. (This also orders the current slave leader set so that the worst scoring one can be found.)

3. Now process the masters j∈M as follows:

(a) Find the i∈ML such that dist(p^([j])−p^([i]))=min_(k∈ML)(dist(p^([j])−p^([k])))

(b) Update the search parameter in a similar way to the standard swarm optimizing algorithm:

v ^([j])→Limit(w ^([j]) ·v ^([j]) +K ₁{rand₁ ^([j])(p ^([j]) −x ^([j]))+rand₂ ^([j])(p ^([i]) −x ^([j]))})  (58)

x ^([j]) →v ^([j]) +x ^([j])  (59)

(c) Evaluate the associated cost Θ(x^([j])).

(d) if x^([j])∈F and x^([j])<_(M) p^([j]) set p^([j])→x^([j])

(e) if x^([j])∉F then an interesting thing happens. Let w∈SL be the worst scoring slave leader in the sense that w<_(S) k is never true for k∈S then we effectively replace w with j in the following sense: p^([w])→x^([j])x^([w])→x^([j])v^([w])→v^([j]). This makes j that crosses the feasibility boundary to become infeasible spawn a slave leader while still staying as a master leader with a good personal best. The idea is that this new slave leader will most likely be close to the feasibility boundary and will lead other slaves back to produce good scoring masters that are feasible. The ordering <_(S) ensures that infeasible slaves with minimal Θ cost are preferred to be in the slave leader group. After modifying w the slaves are reordered using <_(S) and the first half of the slave population are marked as slave leaders.

4. Once all masters have been processed the slaves are in turn processed as follows for each j∉S:

(a) First ensure the slave leaders are the best half of the slave population using the relation <_(S).

(b) Find the i c SL such that dist(p^([j])−p^([i]))=min_(k∈SL)(dist(p^([j])−p^([k])))

(c) Update the search parameter in a similar way to the standard swarm optimizing algorithm

v ^([j])→Limit(w ^([j]) ·v ^([j]) +K ₁{rand₁ ^([j])(p ^([j]) −x ^([j]))+rand₂ ^([j])(p ^([i]) −x ^([j]))})  (60)

x ^([j]) →v ^([j]) +x ^([j])  (61)

(d) Evaluate the associated cost Θ(x^([j])).

(e) if x^([j])∉F and x^([j]<) _(M) p^([j]) set p^([j])→x^([j])

(f) If x^([j])∉F then choose the worst possible w∈M using the relation <_(M) and replace w with j in the following sense: p^([w])→x^([j])x^([w])→x^([j])v^([w])→v^([j]). In this way good slave leaders that are close to the feasibility boundary can spawn better masters. It is possible that a good scoring master away from the boundary can give a global optimum so there is no need to only replace master leaders that are likely to have been spawned from a slave in preference to masters in general.

After replacement of each w∈M the master leaders are found using the relation <_(M).

5. Following the processing of each slave the constraint weights are recalculated to ensure that there are no high scoring infeasible points away from the feasibility boundary. Let g∈ML be the global best, that is g≦_(M) i for all i∈ML.

(a) If g∉F there is no feasible case of use and so the constraint weights are doubled to encourage the choice of feasible points: μ_(k)→2μ_(k).

(b) if g∉F then the constraint weights are adjusted to ensure that

C1:s∈S∩ F

Θ(p ^([s]))≧ƒ(p ^([g]))  (62)

and the weights are reduced if there is too much slack. This is done as follows:

i. Initialize by setting ok→true and α→1. ok is true if no case has been found to violate condition C1. α is used to calculate the slack in the constraint weights.

ii. If ƒ(p^([s]))≧ƒ(p^([g])) then condition C1 is automatically satisfied since Θ(x)≧ƒ(x).

iii. For each s∈S∩ F|ƒ(p^([s]))<ƒ(p^([g])) do the following:

A. Put Δ₁ ^(s)→Θ(p^([s]))−ƒ(p^([g]))

B. If Δ₁ ^(s)<0 set ok→false then find the k to give d_(k)(p^([s]))=max_(j)=1 . . . N_(c)(d_(j)(p^([s]))) this maximum is non zero so we can set μ_(k)→μ_(k)+|Δ₁ ^(s)|/d_(k)(p^([s])) this increases Φ(p^([s])) so that the condition C1 is just satisfied.

C. If (Δ₁ ^(s)≧0)

ok then we can calculate the slack as

$\begin{matrix} {\alpha^{s} = \frac{{f\left( p^{\lbrack g\rbrack} \right)} - {f\left( p^{\lbrack s\rbrack} \right)}}{{\Theta \left( p^{\lbrack s\rbrack} \right)} - {f\left( p^{\lbrack s\rbrack} \right)}}} & (63) \end{matrix}$

This has to be a positive non zero number and we put α→min(α,α^(s)) this ensures that if we put μ_(k)→αμ_(k) and recalculate the augmented cost Θ(x) then condition C1 is still satisfied in the case that ok remains true.

iv. After processing all s∈S∩ F|ƒ(p^([s]))<ƒ(p^([g])), check to see if ok remains true and if so reduce the constraint weights by half of the slack, by putting μ_(k)→0.5(1+α)μ_(k).

This completes the description of the algorithm for a single iteration step.

As can be seen the algorithm uses master and slave leaders to feed each other in a way that encourages the master and slaves to congregate at optimum feasibility boundary in the case that the feasibility constraints constrain the global maximum. Also the algorithm does enable two competing solutions to be explored at the same time by using nearest leaders instead of a global best to lead the master and slave swarms. Furthermore the algorithm adjusts the constraint weights to ensure that the slaves do not have a global minimum away from the feasibility boundary.

By using a fixed list of N_(s)+1 swarm candidates, the implementation ensures the algorithm does not produce memory management inefficiencies. The spare one is called a parked swarm particle which is used to generate new test cases at the update phase and the swarm particles are referenced by an array of pointers. The position of the reference in the array determines if we are dealing with a slave, master, or parked swarm particle. The implementation also ensures that the global best master is always at the beginning of this reference array heading the sub-array of masters so that it is easy to pick out the best one for guidance commands.

One major problem with using a forward sweep method which starts with a guessed costate and integrates forward to give predicted guidance is that this tends to give highly convoluted solutions that are far from optimal and thus a waste of effort. Since a separate optimization algorithm only needs the forward sweep to be accurate close to the optimal solution one can introduce modifications in the differential equations to stop off track solutions from curling up and giving a useless initial guess of the optimal.

To achieve uncurling the costate equation is modified to give

$\begin{matrix} {{\overset{.}{\lambda}}_{\gamma} = {{- \frac{\partial B}{\partial\gamma_{m}}} + {\lambda_{x}V_{m}\sin \; \gamma_{m}} - {\lambda_{y}V_{m}\cos \; \gamma_{m}} - {{V_{m}\left( {\lambda_{x}^{2} + \lambda_{y}^{2}} \right)}^{1/2}k_{s}\lambda_{\gamma}}}} & (64) \end{matrix}$

where k_(s) is an iteration constant which decreases to zero with swarm iterations to finally give the correct solution.

To approximately analyze this assume that λ_(x) and λ_(y) are nearly constant and the boundary cost terms are weak then from Eq. (64) we get

{umlaut over (γ)}=−{dot over (λ)}_(γ)  (65)

≈−A sin(γ_(m)−γ₀)−Ak _(s){dot over (γ)}_(m)  (66)

where

λ_(x) ≡A cos(γ₀)  (67)

λ_(y) ≡A sin(γ₀)  (68)

A=V _(m)(λ_(x) ²+λ_(y) ²)^(1/2)  (69)

by comparison with the original equation. Linearising we get

{umlaut over (γ)}_(m) +Ak _(s){dot over (γ)}_(m) +A(γ_(m)−γ₀)=0  (70)

which is a linear second order system with natural frequency

ω=√{square root over (A)}  (71)

and damping

$\begin{matrix} {\zeta = {k_{s}\frac{\sqrt{A}}{2}}} & (72) \end{matrix}$

Typically k_(s) is initialized to 1 and is reduced exponentially to zero with a time constant of 50 swarm iterations. In this way, high frequency oscillations in the optimization ODE are initial heavily damped out in preference to low frequency oscillations to encourage solutions that are more likely to be optimal, as the iterations continue the high frequency oscillations are allowed in by the relaxation of k_(s) when the algorithm has converged and is not likely to introduce wild non-optimal oscillations. It can also be seen that the effect of the environmental cost function B is to change the frequency of oscillation due to gradients in x_(m) and y_(m) and provide a forcing function to perturb the system if B has a gradient in γ_(m).

We now look at some implementation issues when applied to a dynamic planning example and look at some results. This shows some interesting emergent properties such as covering two possible outcomes at different times to go.

The dynamic mission planning example based on the equations developed above is in a 10 km×10 km area as shown for instance in FIG. 1. In the south is an airfield (not shown) where the pursuer is launched against a target that starts in the central town and can emerge from the urban area in many directions. The pursuer is required to avoid no-go areas centred on a main clumping of urban areas and fly over the target while minimizing the projected ground miss distance and manoeuvring by the pursuer. The target is tracked by a ground-based tracker that measures range bearing and Doppler and discriminates the target from the background through Doppler. The radar is situated in the airfield and measures the target position every 10 s. A 10 s lag is also introduced from measurement and generating guidance output giving the system time to plan ahead a 300 s trajectory into the future (from the start time of the simulation). The radar has rms measurement accuracies of angle 8.5 mr, range 20 m, and Doppler 5 m/sec. For a Doppler greater than 2 m/sec, the tracker can measure angle and range of the target while, for Doppler less than this, it can only infer the position of the target by the Doppler measurement. The particle-based guidance plans forward to predict the best future trajectories using 5 iterations of the master-slave algorithm and a swarm of 40 optimizing test cases. This gives a set of predicted test costates which is used to initialize the next phase after a measurement and the best track is used to produce current navigation commands. The test trajectories are candidate optimal solutions and interact with the particle filter model of the target state using the equations derived above with the exception that the gradient near the no-go boundaries have been reversed to provide a more favourable set of trajectories. Using the correct sign tends to make the slightly off-track trajectories bounce off the no-go boundaries rather than hug them, which would be the case if the additional constraint equations were correctly represented. The computed trajectories are only used to provide viable alternatives to the master-slave optimizer and thus can always be modified using heuristics provided the important cost evaluation is not tampered with.

The target is in the example confined to travel on roads and is given second order dynamics with random input along the lines described by David Salmond, Martin Clark, Richard Vinter, and Simon Godsill (“Ground target modelling, tracking and prediction with road networks”, technical report, the Defence Science and Technology Laboratory on behalf of the Controller of HMSO, 2007). The targets have dynamics that respect the nature of road junctions and will slow down on average if for instance a target meets a main road. The important thing is that an elaborate behavioural model which is non-Gaussian can easily be accommodated without significant change to the algorithm. The Particle Filter uses the standard Sampling Importance Resampling (SIR) filter described by Branko Ristic and Sanjeev Arulampalam in “Beyond the Kalman Filter (Particle Filters for Tracking Applications)”, Artech House, 2004) using 1000 particles. The small number of particles is possible in this case because the target is restricted to roads and the guidance algorithm effectively averages over several particles.

The method employed is set out as pseudocode in FIG. 13. The method can be considered a set of nested iterative loops. In the top-level loop (lines 10 to 150 of the pseudocode), a set of possible target locations (i.e. the target probability distribution) is provided (line 20), an optimal guidance control is calculated (lines 30 to 130), and the calculated optimal guidance control is applied to the vehicle (line 140). The vehicle then travels a distance along its real-world trajectory, according to the applied guidance control, before further observations of the target are made, and a revised set of possible target locations is thereby provided (returning to line 20). The loop is repeated until the vehicle reaches the target.

In the calculation of the optimal guidance control (lines 30 to 130), an optimisation loop is iterated for a predetermined number J of steps. In the optimisation loop, candidate guidance solutions are provided (line 40). Each candidate guidance solution is considered in turn (in a loop at lines 50 to 110), and a cost is calculated for each in a cost calculation loop (lines 60 to 90) and then recorded (line 100). Once all the candidate guidance solutions have been costed, an optimisation algorithm (in this example a master-slave swarming algorithm, as discussed above) is used to calculate a new set of candidate guidance solutions (line 120), which are used in the next iteration of the optimisation loop (i.e. from line 40).

In the cost loop (lines 60 to 90), the future trajectory of the vehicle being guided is calculated (line 70), for the candidate guidance solution, in this example by integration of the costate trajectory, in accordance with Eq. (21) above. As the PONA to each possible target trajectory is passed, the projected trajectory is adjusted to take into account the passed possible target trajectory (line 80), until the PONA to the final target trajectory is passed, at which point the cost for the candidate guidance solution under consideration is known.

Thus cost for the resultant trajectory of each candidate guidance solution is calculated, and the optimal guidance solution is determined by using an optimisation algorithm to optimise that cost.

The tracking of several potential targets spread out on a network of roads makes it difficult to appreciate the qualitative features of the tracking algorithm so a video of the internal processing laid out on the backdrop of roads and no-go areas was plotted and stored in an .avi file for replaying. FIG. 1 gives a snapshot of such a frame, annotated with additional comments. The sweep time is the internal predicted state time from the beginning of simulation. The Measurement time corresponds to the next measurement time. All output displays the state after 5 iterations of the master-slave algorithm where there are 20 masters and 20 slaves. The green lines 10 represent the personal best of the masters with the red track 20 representing the global best track prediction. The black track 30 represents the actual track taken so far by the munition. The road network is represented by orange lines 40. The thick roads represent main roads where the target can move at faster average speeds. The no-go areas are represented by purple clockwise contours 50. The track of the target so far is represented by a light blue track 60, the actual target position synchronized with the sweep time is represented by a yellow circle 70, and the predicted target distribution is represented by dark blue dots 80.

In Example Case 1, the target starts heading South as shown in FIG. 2, and is intercepted quite early. FIG. 3 shows the potential target distribution at this intercept time if there were no future measurements. However, the algorithm does not just take an average location of possible target positions resulting in flight directly into the no-go area. Note that the initial 5 steps in optimization have not converged to an optimal long-term solution but this has little effect in the actual path taken.

FIG. 4 shows a conflict of potential target routes and the planner starts to sort out the shortest time to go case first. This happens because the algorithm will tend to approximate when to choose a PONA. In FIG. 5 this is resolved into a dogleg that covers South going track and an East-West track.

The South going track does not materialize and in FIG. 6 the planner concentrates on the East-West tracks. Finally in FIG. 7, the munition homes on to the target.

In Example Case 2, the target starts in the centre of the no-go zone as shown in FIG. 8 and finally emerges at the top heading North West. In FIG. 9 the planner explores two options and decides to go to the West of the no-go area. This case shows how the solutions can bifurcate.

In FIG. 10 the West route becomes the only option however the track does not bend towards the targets that much because the cost due to miss distance has been saturated and only strongly influences the planned track at short range. In this case the costates have charged-up significantly to give a straight trajectory past the no go zone. There is a built-in cost contribution to ensure the final costates at the end of planned trajectories are zero, which should be the case for an optimal solution. However this cost component does not remove this charging-up tendency. Finally the central no-go area is passed and the planner heads towards the remaining possible target positions in FIG. 11. Finally in FIG. 12 the planner homes onto the centre of the target distribution.

Thus a practical method has been produced to solve the general problem of dealing with non-Gaussian guidance problems. The method has been applied to the example problem of dynamic mission planning of a pursuing air vehicle against a moving ground target, restricted to move on a network of roads.

The master-slave algorithm for finding an optimal trajectory, together with the modified optimal trajectory parameterization by costate that interacts with particle filter representation of target capability, gives a good method for finding workable solutions to navigating to ground targets on a network of roads where there is significant uncertainty in the future motion of the target in the presence of no-go areas. The master-slave algorithm has a random search component and only provides an approximate solution in a way that is similar to the use of particles in particle filtering to represent target probability distributions. As such, it is useful in producing gross navigation input to the guidance, and in the case of an external radar tracker the munition uses a short-range sensor to acquire the target at 500 m to go and home into the target using conventional homing. The results in the described example show some interesting emerging behaviour: the possible optional target positions are covered by suitable dogleg manoeuvres using good timing, and alternative optional trajectories are covered by the swarm of planned trajectories.

Embodiments of the invention can thus deal with the case where there are several possible target trajectories to choose from and where there is a significant difference in flight time to each target and the cost depends on a weighted mixture of possible targets. This allows embodiments of the invention to deal with uncertain future with a known probability distribution of cases where the estimation of target and optimal guidance cannot be separated into independent problems.

Regarding a “significant difference in flight time” mentioned above, flight time to a target (“time to go”) is the total time of flight to a corresponding chosen PONA for a sample target track. Target tracks can be affected by one or more physical factors, these being for example the geography of the target trajectories themselves and the effect of no-go areas for the pursuer. In embodiments of the invention, the difference between times to go can be rendered small by choosing a large target sample and indeed a small difference is preferred but this increases the number of PONAs and the number of jumps. Each jump adds cost. Embodiments of the invention perform particularly well where the spread of time to go to a PONA for the individual target tracks in relation to a mean time to go for all the target tracks is significant. This can be said to be the case if the assumption that all the times to go are the same leads to a significant increase in overall performance cost. Generally, this occurs of there is a spread of the order of 30% or more in the flight times for the individual target tracks with regard to the mean flight time. Embodiments of the invention are particularly useful for example where a pursuer is delayed in order to get a better shot at the target while the uncertainty in target position (two or three different available exit routes from a no-go area for example) means the pursuer has to cover more than one route to the target.

Another way of expressing this significant difference in flight times is to say that the target routes, or tracks, cannot be smoothly deformed into each other.

Whilst the present invention has been described and illustrated with reference to particular embodiments, it will be appreciated by those of ordinary skill in the art that the invention lends itself to many different variations not specifically illustrated herein.

Where in the foregoing description, integers or elements are mentioned which have known, obvious or foreseeable equivalents, then such equivalents are herein incorporated as if individually set forth. Reference should be made to the claims for determining the true scope of the present invention, which should be construed so as to encompass any such equivalents. It will also be appreciated by the reader that integers or features of the invention that are described as preferable, advantageous, convenient or the like are optional and do not limit the scope of the independent claims. Moreover, it is to be understood that such optional integers or features, whilst of possible benefit in some embodiments of the invention, may be absent in other embodiments. 

1. A method of guiding a pursuer to a target, the method comprising: (a) providing a plurality of possible target trajectories, weighted to represent a probability distribution of the target trajectories; (b) providing a plurality of candidate guidance controls, parameterised by a candidate guidance parameter; (c) for each of a plurality of values of the candidate guidance parameter: a. determining a projected pursuer trajectory resulting from the candidate guidance control corresponding to the candidate guidance parameter value; b. using the projected pursuer trajectory so far developed, determining the next occurrence of a termination condition for the pursuer trajectory relative to any of the target trajectories for which a termination condition has not yet occurred; c. adjusting the projected pursuer trajectory, subsequent to that termination-condition occurrence, to account for that target trajectory; d. repeating steps b and c until the termination conditions corresponding to all of the plurality of possible target trajectories have been accounted for; and e. recording a cost for the candidate guidance control based on the projected pursuer trajectory and the miss distances at the termination-condition occurrence for each target trajectory; (d) generating a revised plurality of values of the candidate guidance parameter in view of the recorded costs of the candidate guidance controls; (e) repeating steps (c) and (d) a plurality of times and identifying an optimal guidance control based on the recorded costs; (f) applying the optimal guidance control to the pursuer to alter its actual trajectory; (g) obtaining updated possible target trajectories; and (h) repeating steps (b) to (g) a plurality of times.
 2. A method as claimed in claim 1, in which the termination condition relative to a target trajectory is the point of nearest approach of the projected pursuer trajectory to the target trajectory.
 3. A method as claimed in claim 1, in which the candidate guidance parameter is a costate parameter.
 4. A method as claimed in claim 1, in which the target trajectories are described by non-Gaussian statistics.
 5. A method as claimed in claim 4, in which the target trajectories are possible routes of a target vehicle.
 6. A method as claimed in claim 1, in which the revised plurality of values of the candidate guidance parameter are generated using an optimisation algorithm.
 7. A method as claimed in claim 1, in which the optimisation algorithm is a swarm algorithm.
 8. A method as claimed in claim 7, in which the swarm algorithm is a master-slave swarm algorithm.
 9. A method as claimed in claim 1, comprises uncurling a projected trajectory by damping a high-frequency oscillation in the projected trajectory.
 10. (canceled)
 11. (canceled)
 12. (canceled)
 13. (canceled)
 14. Processing apparatus arranged to carry out the steps of a method as claimed in claim
 1. 15. A vehicle comprising processing apparatus as claimed in claim
 14. 